Global equation solver and optimizer

ABSTRACT

A method to determine global optimality/feasibility/infeasibility when solving a quadratic system of modeling equations for industrial problems includes a bound propagation process to refine bounds and improve linearization, a local linear bounding process to determine feasibility and find approximately feasible solutions, a local linearization process to determine feasibility and local optimality, and a global subdivision search to branch and prune. Applications include solving and optimizing scheduling, planning, operations, inventory, suppliers, ordering, customers, and production problems.

BACKGROUND

[0001] Planning and scheduling require solving and optimizing a set of nonlinear equations. Consider a plant that makes ice cream. The plant needs to make vanilla, strawberry, and chocolate ice cream, but there are a number of constraints, such as the amount of vanilla flavoring, strawberries, and chocolate available. There are scheduled deliveries of ice cream and orders to fill. When a truck rolls up and expects to be loaded with chocolate ice cream, for example. There are production constraints, such as needing to do chocolate last because after producing chocolate ice cream, the pipes must be cleaned before you can run anything else. This is a cost penalty for chocolate. While the plant is making one kind of ice cream it cannot produce anything else, because the equipment is committed to a particular product. Business managers would like to make as large a batch as possible because that minimizes the amount of time the system is down for transitions between products. On the other hand, storage space is limited. For example, chocolate syrup may start to build up. Trucks full of chocolate syrup sit in the plant parking lot and charge thousands of dollars a day until you can get them unloaded.

[0002] In managing plant operations, there are a series of continuous and discreet decisions to make. To get rid of the chocolate syrup, chocolate will need to be produced on Tuesday and strawberry on Wednesday and some time will need to be spent cleaning up after the chocolate. Those are discreet decisions, because a plant cannot only half make chocolate ice cream; the plant either makes it or not. Given a particular set of discrete decisions, a set of continuous decisions is made. How much chocolate ice cream should be produced? How much strawberry ice cream should be produced? How much chocolate is the plant going to have in the tanks at a particular time of day? How much chocolate will be produced in the next hour? Is it going to build up to the point where is blows the top off the tank? How much chocolate syrup is required? When does the plant start making strawberry? How fast will the strawberries be used up and when will the strawberries run out? Those are continuous decisions. Complications may arise, such when the guy who makes strawberry is late or when it takes longer than usual to clean up after the chocolate. Discrete and continuous decisions like these are used to set up a set of equations or constraints.

[0003] In addition, there are other motivations, such as market demand. A customer may be willing to pay twice as much for all chocolate ice cream as for half chocolate and half strawberry. Perhaps a plant manager is motivated to do a lot more vanilla, even though the supply schedule tells him he is not able to get to vanilla for a long time. Then, he will want to optimize production of vanilla as soon as the vanilla supplies arrive. Even more complex situations occur.

[0004] For a planning system, a set of equations derived from high-level constraints is solved to find the best solution based on certain criteria, such as profitability. This result tells whether the plan will work. If so, then more detailed constraints and criteria are added to the set of equations and the set of equations is solved for a schedule. Scheduling systems have a much larger set of equations to solve than planning systems. This puts a lot more stress on the solver and the solving technology.

[0005] Most current systems are planning systems, not scheduling systems, which are larger and harder to solve. Current methods are unable to solve scheduling problems within the necessary time for rapid modeling and simulation with optimum or near optimum solutions. Also, current methods suffer from a local optimality problem, where a local optimum in the solution space is incorrectly given as the solution when the actual global optimum lies elsewhere. Any system that suffers from the local optimality problem may not be able to find a solution, when a solution exists. In addition, some of the current methods are too slow. Furthermore, most current methods fail to find a solution without indicating if the problem is infeasible or not. The few methods that are able determine infeasibility have poor or slow convergence. Some examples of current methods are sequential linear programming, sequential quadratic programming, and trusted regions. All three of these suffer from the local optimality problem and when they fail, it is unknown whether the problem is infeasible or not. There is a need for an efficient method to quickly converge on a solution, to rigorously determine whether or not the problem is infeasible, and to find the global optimum instead of getting stuck in a local optimum.

SUMMARY

[0006] The present invention solves both planning and scheduling problems by combining a number of technologies. It balances the safety of subdivision methods with the fast convergence of linearization methods, avoiding the local optimality problem. Also, the linearization methods rigorously determine whether or not the problem was infeasible. The present invention is a method of solving an operations problem. Operations problems comprehend both planning and scheduling problems. First, the method receives variables, relationships, and constraints. Then, it forms a set of non-convex quadratic equations based on them. The method solves the set of non-convex quadratic equations by applying a bound propagation process, a local linear bounding process, a local linearization process, and a global subdivision search. Finally, the method determines whether a solution is optimal, feasible, or infeasible. Thus, the present invention recognizes local optimality problems and goes beyond them to find a global solution, if one exists. If not, the present invention rigorously proves infeasibility. If there is a solution, it comes up with a solution.

BRIEF DESCRIPTION OF THE DRAWINGS

[0007]FIG. 1 is a block diagram of example applications of the present invention.

[0008]FIG. 2 is a block diagram of a bounded region containing a solution space to solve for an optima using embodiments of the present invention.

[0009]FIG. 3 is a flow chart of a method embodiment of the present invention.

[0010]FIG. 4 is a more detailed flow chart than FIG. 3 and shows a method embodiment of the present invention.

[0011]FIG. 5 is a block diagram of a bounded region, like the one shown in FIG. 2, which is modified in a bound propagation and refinement subprocess of a method embodiment of the present invention, such as the method embodiments shown in FIGS. 3 and 4.

[0012]FIG. 6 is a flow chart of a local linear bounding subprocess of a method embodiment of the present invention, such as the method embodiments shown in FIGS. 3 and 4.

[0013]FIG. 7 is a flow chart of a linearization subprocess of a method embodiment of the present invention, such as the method embodiments shown in FIGS. 3 and 4.

DETAILED DESCRIPTION

[0014] Methods for a global equation solver and optimizer are described. In the following detailed description, reference is made to the accompanying drawings, which form a part hereof. These drawings show, by way of illustration, specific embodiments in which the invention may be practiced. In the drawings, like numerals describe substantially similar components throughout the several views. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention. Other embodiments may be utilized and structural, logical, and electrical changes may be made without departing from the scope of the present invention.

[0015]FIG. 1 is a block diagram of example applications of the present invention. The present invention is shown as a solver 100. The solver solves a set of equations, giving a set of variables and what they are equal to in the solution, if one exists. These variables are then translated into a business use, such as an operations plan, an accounting summary or some other useful, concrete, and tangible results. The solver is like an octopus, because customer orders interact with inventory, which in turn interacts with production facilities, which interacts with the business plan and so on. The solver is at the heart of all these activities.

[0016] The solver is run as a scheduling system at least on a daily basis. As a planning system, it is run about once a month with adjustments as events occur. Or run to interact with traders as they phone in opportunities. The solver 100 can be applied to scheduling 102, planning 104, and other operations 106.

[0017] Planning is the forecasting of the average performance of a plant (a collection of interconnected processes) over some specified period, such as a month or a year. The plan specifies what inputs are needed and how they are to be used to produce plant outputs. The plan usually includes forecasts of the values of individual process performance parameters such as yields, product qualities, flow rates, temperatures, and pressures. The plan also includes economic information about the impact of changes in parameters on plant profitability.

[0018] Scheduling is the specification of the inputs to and outputs from each process and inventory, plus the timing and sequencing of each production operation, whether batch or continuous, over some short scheduling period, such as a week or 10 days. Although the horizon is a week or 10 days, today's operation is the most important. Operations are not averaged over the scheduling period; rather, time and operations move continuously from the beginning of the period to the end. Ideally, the schedule is revised each day as needed so that it always starts from current actual performance.

[0019] Additionally, the solver can be applied to inventory 108, suppliers 110, and ordering 112. Also, it can be applied to customers 114 and production 116. For example, a business analyst takes a phone call from a trader who says he has a chance to sell this much of something and asks the business analyst if he can make it in time. The business analyst quickly runs the solver to decide whether it is a good opportunity or not. Another example is storing routine results in an executive information system for general business planning, such as forecasting whether profit numbers will be made for the quarter. Another example is an operations person who uses the results to decide what temperature to crank his unit. Another example is a factory floor scheduler with a cell phone and spreadsheet, who directs operations people based on the results. In addition, the present invention has many other applications.

[0020]FIG. 2 is a block diagram of a bounded region 200 containing a solution space 202 to solve for an optima 204 using embodiments of the present invention. Initially, the solution space is unknown, but the bounded region 200 can be determined from the set of equations to solve. The ranges of variables in the set of equations define certain bounds. The exemplary bounded region 200 is shown in three-dimensional space with x-206, y-208, and z-axes 210. This represents a rather simple set of equations with 3 variables. A typical set of equations has 10,000 variables, so a typical bounded region would have 10,000 dimensions. However, the three dimensions shown in FIG. 2 are easier to conceptualize. In FIG. 2, the x variable has lower and upper bounds, LB(X) and UB(X) respectively. The y variable has lower and upper bounds, LB(Y) and UB(Y) respectively. The z variable has lower and upper bounds, LB(Z) and UB(Z) respectively. The bounded region 200 is the intersection of these lower and upper bounds and the solution space 202 is contained within the bounded region 200.

[0021] Assuming the problem is not infeasible, the solution space 202 is a set of feasible solutions in a feasible region, one of which is the optima 204. A feasible region is the set of all points satisfying all of the problem's constraints and restrictions defined in the set of equations. For example, in a feasible solution for an oil refinery, no tanks overflow or underflow. Often, for a scheduling problem, the goal is to meet the schedule with a feasible solution, rather than an optimal solution. For example, given a certain amount of inventory and shipments, a feasible solution makes the shipments without using up too much of the inventory. Because the deals have already been made, any extra product is stored, not sold. An infeasible problem occurs when the feasible region is empty, i.e. it contains no points. By definition, an infeasible problem has no optimal solution. An optima or optimal solution is a point in the feasible region with the largest objective function value, for a maximization problem. Similarly, for a minimization problem, the optimal solution is a point in the feasible region with the smallest objective function value. An objective function is some function of particular decision variables to be minimized or maximized. For example, a simple objective function to maximize is (weekly revenues)−(raw material purchase costs)−(other variable costs). Some other examples of optimality measures or objective functions are minimum turnover, minimum costs, accomplishing work in minimum time, maximizing a high margin product, and the like. The optima is defined by pre-determined criteria, such as least cost or most profit that are included as input to the present invention. A global optima is the optima over the entire range of variables as opposed to a local optima, which is the optima only in a local area.

[0022]FIG. 3 is a flow chart of a method embodiment 300 of the present invention. One aspect of the present invention is a method 300 of solving an operations problem. Operations problems comprehend both planning and scheduling problems. For example, problems include maximizing profits, meeting shipments, meeting production schedules, meeting product specification requirements, and other business problems. Operations problems are optimization problems in industries as diverse as banking, education, forestry, petroleum, and trucking. The method 300 comprises receiving variables 302, relationships 304, and constraints 306. The variables 302 are things like qualities, quantities, timing, and the like. Relationships 304 express how the variables 302 interrelate, such as how speed relates to quality. For example, in mixing things, the relative quantities effect the quality of the mixture. Other examples are relationships 304 based on the physics of a plant and relationships 304 based on economics, such as cost and revenue. Some examples of constraints 306 in refinery applications are tank limits, product specifications, gasoline octane ratings, operating limits and the like.

[0023] The method 300 comprises forming a set of non-convex quadratic equations 308 based on the variables 302, relationships 304, and constraints 306. Some example equations are formed by the definition of the problem. Other example equations are formed by physical constraints, such as the capacity of a tank. Still other example equations are formed by the physics of a process being modeled. Equations that are not in quadratic form can be converted to quadratic form by standard approximation methods. Convex equations have solution sets such that a line segment joining any pair of points in the solution set is wholly contained in the solution set. Non-convex equations do not have this property. Generally, when a convex object, such as a beach ball is put on a flat surface, it will be touching at one point. Non-convex objects basically have some indentation or dimple in it. Non-convex equations usually have multiple local pseudo-solutions, meaning they are not solvable with current methods having the local optimality problem.

[0024] The method 300 further comprises solving the set of non-convex quadratic equations by applying a bound propagation process, a local linear bounding process, a local linearization process, and a global subdivision search. This is shown in FIG. 3 as the solver 310. Solving the equations is described in more detail below with reference to FIG. 4. The method 300 further comprises determining whether a solution is optimal, feasible, or infeasible. FIG. 3 shows the solver 310 determines whether a solution exits 312. If no solution exists, then the solver 310 determines that the problem is infeasible 314. If a solution exists, then the solver 310 determines whether the solution is optimal 316. The solver determines either that the solution is optimal 318 or feasible 320.

[0025] The solution to the set of non-convex quadratic equations has many uses. (See FIG. 1.) In one embodiment, the solution is a schedule for the manufacturing process. In another embodiment, the solution is a schedule for operating an oil refinery. In another embodiment, the solution is a plan for the manufacturing process. In another embodiment, the solution is a plan for operating an oil refinery.

[0026]FIG. 4 is a more detailed flow chart than FIG. 3 and shows a method embodiment 400 of the present invention. One aspect of the present invention is a method 400 comprising solving the set of non-convex quadratic equations by applying a bound propagation process 402, a local linear bounding process 404, a local linearization process 406, and a global subdivision search 408. Three of these processes are described below with reference to FIGS. 5-7. The bound propagation process 402 is described below with reference to FIG. 5. The local linear bounding process 404 is described below with reference to FIG. 6. The local linearization process 406 is described below with reference to FIG. 7.

[0027] The global subdivision search 408 is done over a bounded region, like the one shown in FIG. 2 using branch and prune logic. For branching, the solver starts with the whole bounded region and if no solution is found, splits the region in half, first searching one half and then the other until a solution is found or the problem is determined to be infeasible. For pruning, only bounded regions that might contain a solution need to be examined. There are many alternate methods for performing the global subdivision search. One alternate method is to pick the most infeasible constraint and find the most infeasible variable in it.

[0028] The combination of processes in method 400 work together to create advantages over current methods. The bound propagation process 402 gives the method 400 improved performance over current methods. The local linear bounding process 404 rigorously proves infeasibility locally. The local linearization process 406 improves time to convergence on a solution over current methods. The global subdivision search 408 helps to avoid the local optimality problem. These advantages help reduce project cycles, integrate operations for better decisions, and increase profits by providing more accurate, timely information for real-time decisions.

[0029] Another aspect of the present invention is a machine-accessible medium having associated content capable of directing the machine to perform a method 400 of solving a set of non-convex quadratic equations. At the start 410 in FIG. 4, the method 400 comprises selecting a region bounding all variables 412. A bound propagation process is applied to the region to refine the bounds and improve linearization 402. A local linear bounding process is applied to the region to determine feasibility and to find approximately feasible solutions 404. The local linear bounding process is optionally repeated. The method 400 determines if there is no potential for a solution 414 within the region. If so, the region is eliminated from consideration 416. The method 400 determines if there is no potential for an optimal solution 418. If so, the region is eliminated from consideration 420.

[0030] A local linearization process is applied to the region to determine feasibility and local optimality 406. The local linearization process is optionally repeated. The method 400 determines if there is a solution 422 and if so, if it is optimal 424. Upon finding an optimal global solution 426, the optimal global solution and information indicating optimality are provided and the method 400 ends 428. Upon finding a feasible global solution 430, the feasible global solution and information indicating feasibility are provided and the method 400 ends 428. Upon determining local infeasibility, the region is eliminated from consideration. Upon determining global infeasibility 432, information indicating infeasibility is provided and the method 400 ends 428. Upon not finding a solution, a global subdivision search 408 is applied to the region to produce two or more regions and the bound propagation 402, local linear bounding 404, and local linearization 406 processes are iteratively applied to each of the two or more regions, until the solution is determined to be optimal 426, feasible 430, or infeasible 432.

[0031] In one embodiment, the method 400 further comprises receiving input variables, constraints, and equations. In another embodiment, the method 400 further comprises receiving a measure of optimality used to determine the global optimal solution. In another embodiment, the method 400 further comprises receiving a measure of feasibility used to determine the global feasible solution. In another embodiment, the method 400 further comprises providing a schedule for operating a plant. In another embodiment, the method 400 further comprises providing a plan for operating a plant.

[0032] Another aspect of the present invention is a process 400 of solving a set of non-convex quadratic equations. The process 400 comprises selecting a region bounding all variables 412. A bound propagation process 402 is applied to the region to refine the bounds and improve linearization. A local linear bounding process 404 is applied to the region to determine feasibility and to find approximately feasible solutions. A local linearization process 406 is applied to the region to determine feasibility and local optimality. Upon finding a solution after the local linearization process, the solution is provided. Upon determining infeasibility, the region is eliminated from consideration. Upon not finding the solution after the local linearization process, a global subdivision search 408 is applied to the region to produce two or more regions and the bound propagation 402, local linear bounding 404, and local linearization 406 processes are iteratively applied to each of the two or more regions, until it is determined that the solution is optimal, feasible, or infeasible.

[0033] In one embodiment of the process 400, the local linearization process 406 is the local linear bounding process 404.

[0034]FIG. 5 is a block diagram of a bounded region, like the one shown in FIG. 2, which is modified in a bound propagation and refinement subprocess of a method embodiment of the present invention, such as the method embodiments shown in FIGS. 3 and 4. FIG. 5 shows a bounded region 500 with refined upper and lower bounds along the y-axis to produce a refined region 502, which is closer to the solution space 504 and reduces the space to search. Once bounds are refined, they are propagated. For example, if one of the equations is X=Z+Y, once Y is bound, then that can be propagated to X and Z so that X and Z are also bound, reducing the size of the region to search.

[0035]FIG. 6 is a flow chart of a local linear bounding subprocess 600 of a method embodiment of the present invention, such as the method embodiments 300, 400 shown in FIGS. 3 and 4. In one embodiment, the local linear bounding subprocess 600 determines infeasibility and finds approximately feasible solutions. In one embodiment, the local linear bounding process 600 comprises performing differentiation 602 on equations 604 in the region 606. The region 606 includes an initial point (x₀). Differentiation 602 is done around the x₀. The lower and upper bounds on the variables in the region are determined 608. A linear programming process is applied to the linear equations in the region 610. The local linear bounding subprocess 600 determines whether a solution exists in the region 612. Upon finding a solution exists, local feasibility is determined 614. Upon finding local infeasibility, global infeasibility is determined 616.

[0036] In one embodiment, the initial point is a trial solution closest to a feasible solution. In another embodiment, the initial point is a trial solution closest to being the optimal solution. In another embodiment, the initial point is the largest. In another embodiment, the initial point is the smallest. Other embodiments include using discrete search techniques.

[0037]FIG. 7 is a flow chart of a linearization subprocess 700 of a method embodiment of the present invention, such as the method embodiments 300, 400 shown in FIGS. 3 and 4. In one embodiment, the local linearization process 700 comprises performing differentiation 702 at a point in the bounded region 704. A set of linear equations is formed 706. A linear programming process is applied to the linear equations in the bounded region 708. A new point is generated in the bounded region 710 and the local linearization process is repeated with the new point. If the linear program fails to generate a new point 712, then the global subdivision search or some other method is applied 714. In another embodiment, the local linearization process 700 has quadratic convergence, giving it fast performance.

EXAMPLE EMBODIMENTS

[0038] The following example embodiments provide methods for the global solution and optimization of systems of quadratic equations, with extensions to general nonlinear functions.

Basic Definitions

[0039] Let ƒ(x):

^(n)→

^(m) be a quadratic function of the form $\begin{matrix} {{f_{k}(x)} = {C_{k} + {\sum\limits_{i}{A_{ki}x_{i}}} + {\sum\limits_{ij}{B_{kji}x_{j}{x_{i}.}}}}} & (1.1) \end{matrix}$

[0040] The problem we wish to solve will have the following form.

min ƒ_(k)(x):kεK ₀

lb _(k)≦ƒ_(k)(x)≦ub _(k) :∀kεK ₁

u ⁰ ≦x≦v ⁰  (1.2)

[0041] (The set K₀must include only a single linear function.)

[0042] With informal notation, we shall write the functions in the matrix/vector notation

ƒ(x)=C+Ax+Bxx  (1.3)

[0043] when we wish to consider all the functions, and in the forms

ƒ⁰(x)=C ⁰ +A ⁰ x

ƒ¹(x)=C ¹ +A ¹ x+B ¹ xx  (1.4)

[0044] when we wish to consider the three classes of functions.

[0045] Notationally, Bxy is to be interpreted as a multilinear ${Bxy} = {\sum\limits_{ij}{B_{kji}x_{j}y_{i}}}$

[0046] and the linear form Bx is equivalent to the matrix $({Bx})_{ki} = {\sum\limits_{j}{B_{kji}{x_{j}.}}}$

[0047] In addition, the transpose of B is defined as B*xy=Byx, with the immediate equality B*_(kji)=B_(kij).

[0048] Define the positive and negative functions

(x)₊=max(x,0)≧0

(x)⁻=min(x,0)≦0  (1.5)

[0049] We define a measure of the infeasibility of a particular point to be $\begin{matrix} {{\Delta \quad (x)} = {\sum\limits_{k \in K_{1}}{\Delta_{k}(x)}}} & (1.6) \end{matrix}$

[0050] where

Δ_(k)(x)=max((ƒ_(k)(x)−ub _(k))₊,(lb _(k) −ƒ _(k)(x))₊).  (1.7)

[0051] (As a result, Δ(x)≧0, and Δ(x)=0 only if the point x is feasible.)

[0052] In the course of solving the problem (1.2) above, we will be solving a sequence of subsidiary problems. These problems will be parameterized by a trial solution and a set of point bounds,

{overscore (x)}

u≦x≦v.  (1.7)

[0053] From that we can compute a set of gradient bounds

F=(B)₊ u+(B)⁻ v

G=(B)₊ v+(B)⁻ u  (1.8)

[0054] so that

u≦x≦v

F≦Bx≦G.  (1.9)

[0055] We will also require that the trial solution also satisfy the bounds

u≦{overscore (x)}≦v.  (1.10)

[0056] We define the row vector e={1, . . . ,1} so that we can compute the maximum infeasibility for the bounds $\begin{matrix} {{\Delta \quad \left( {u,v} \right)} = {{{e\left( {G - F} \right)}\left( {v - u} \right)} = {\sum\limits_{ki}{\left( {G_{ki} - F_{ki}} \right)\left( {v_{i} - u_{i}} \right)}}}} & (1.11) \end{matrix}$

[0057] or equivalently $\begin{matrix} {{\Delta \quad \left( {u,v} \right)} = {{e{B}\left( {v - u} \right)\left( {v - u} \right)} = {\sum\limits_{kii}{{B_{kji}}\left( {v_{j} - u_{j}} \right){\left( {v_{i} - u_{i}} \right).}}}}} & (1.12) \end{matrix}$

[0058] In the course of the method, we will also be computing a series of trial solutions. We can compute the divergence of a sequence of trial solutions {{overscore (x)}¹,{overscore (x)}², . . . } $\begin{matrix} {{{{\overset{\_}{x}}^{2} - {\overset{\_}{x}}^{1}}} = {\sum\limits_{i}{{{{\overset{\_}{x}}_{i}^{2} - {\overset{\_}{x}}_{i}^{1}}}.}}} & (1.13) \end{matrix}$

[0059] The centered representation of a function relative to a given trial solution {overscore (x)} is

ƒ(x)={overscore (C)}+{overscore (A)}(x−{overscore (x)})+B(x−{overscore (x)})(x−{overscore (x)})  (1.14)

[0060] where $\begin{matrix} {\begin{matrix} {\overset{\_}{A} = {A + {\left( {B + B^{*}} \right)\overset{\_}{x}\quad \left( {= {A_{ki} + {\sum\limits_{j}{\left( {B_{kji} + B_{kij}} \right){\overset{\_}{x}}_{j}}}}} \right)}}} \\ {\overset{\_}{C} = {C + {A\overset{\_}{x}} + {B\overset{\_}{x}\overset{\_}{x}\quad \left( {= {C_{k} + {\sum\limits_{i}{A_{ki}{\overset{\_}{x}}_{i}}} + {\sum\limits_{ij}{B_{kji}{\overset{\_}{x}}_{j}{\overset{\_}{x}}_{i}}}}} \right)}}} \end{matrix}.} & (1.15) \end{matrix}$

[0061] By also defining

{overscore (u)}=u−{overscore (x)}

{overscore (v)}=v−{overscore (x)}

{overscore (F)}=F−B{overscore (x)}

{overscore (G)}=G−B{overscore (x)}  (1.16)

[0062] the bounding inequalities are equivalent to the following centered inequalities

{overscore (u)}≦x−{overscore (x)}≦{overscore (v)}

{overscore (F)}≦B(x−{overscore (x)})≦{overscore (G)}.  (1.17)

[0063] Also note that since {overscore (u)}≦0≦{overscore (v)}, we have

|x _(i) −{overscore (x)} _(i)|≦max(|{overscore (u)} _(i) |,|{overscore (v)}|_(i))≦v _(i) −u _(i).  (1.18)

[0064] In order to bound on both side, we will be decomposing x−{overscore (x)} into two nonnegative variables,

z−w=x−{overscore (x)}

z≧0

w≧0  (1.18)

[0065] to which we will apply the bounds

z _(i) +w _(i)≦max(|{overscore (u)} _(i) |,|{overscore (v)}| _(i)).  (1.19)

[0066] The subsidiary problems are then

[0067] A) the basic quadratic feasibility problem $\begin{matrix} {{P0} = \left\{ {x:\begin{matrix} {u^{0} \leq x \leq v^{0}} \\ {{lb} \leq {f^{1}(x)} \leq {ub}} \end{matrix}} \right\}} & (1.20) \end{matrix}$

[0068] and its optimization form $\begin{matrix} {{PO0} = {\left\{ {x:\begin{matrix} {\min \quad {f^{0}(x)}} \\ {x \in {P0}} \end{matrix}} \right\}.}} & (1.21) \end{matrix}$

[0069] B) the basic quadratic problem with the bounding inequalities $\begin{matrix} {{{Pbd}\left( {u,v} \right)} = \left\{ {x:\begin{matrix} {u \leq x \leq v} \\ {{lb} \leq {f^{1}(x)} \leq {ub}} \end{matrix}} \right\}} & \left( \text{1.23} \right) \end{matrix}$

[0070] and its optimization form $\begin{matrix} {{{PObd}\left( {u,v} \right)} = {\left\{ {x:\begin{matrix} {\min \quad {f^{0}(x)}} \\ {x \in {{Pbd}\left( {u,v} \right)}} \end{matrix}} \right\}.}} & \left( \text{1.24} \right) \end{matrix}$

[0071] C) the enveloping linear programming problem (using the formulas of (1.8), (1.15), and (1.16)) $\begin{matrix} {{{LP}\left( {\overset{\_}{x},u,v} \right)} = \left\{ {x,z,{w:\begin{matrix} {\overset{\_}{u} \leq {x - \overset{\_}{x}} \leq \overset{\_}{v}} \\ {{l\quad b} \leq {{\overset{\_}{C}}^{1} + {{\overset{\_}{A}}^{1}\left( {x - \overset{\_}{x}} \right)} + {{\overset{\_}{G}}^{1}z} - {{\overset{\_}{F}}^{1}w}}} \\ {{ub} \geq {{\overset{\_}{C}}^{1} + {{\overset{\_}{A}}^{1}\left( {x - \overset{\_}{x}} \right)} + {{\overset{\_}{F}}^{1}z} - {{\overset{\_}{G}}^{1}w}}} \\ {{x - \overset{\_}{x}} = {z - w}} \\ {{z + w} \leq {\max \left( {{\overset{\_}{v}},{\overset{\_}{u}}} \right)}} \\ {z,{w \geq 0}} \end{matrix}}} \right\}} & \left( \text{1.25} \right) \end{matrix}$

[0072] its optimization form $\begin{matrix} {{{LPO}\left( {\overset{\_}{x},u,v} \right)} = \left\{ {x:\begin{matrix} {{\min \quad {f^{0}(x)}} = {A^{0}x}} \\ {x \in {{LP}\left( {\overset{\_}{x},u,v} \right)}} \end{matrix}} \right\}} & \left( \text{1.26} \right) \end{matrix}$

[0073] and its minimal infeasibility form $\begin{matrix} {{{LPMI}\left( {\overset{\_}{x},u,v} \right)} = {\left\{ {x:\begin{matrix} {\min \quad {\left( {G - F} \right)}\left( {z + w} \right)} \\ {x \in {{LP}\left( {\overset{\_}{x},u,v} \right)}} \end{matrix}} \right\}.}} & \left( \text{1.27} \right) \end{matrix}$

[0074] E) and finally the linearization problem with the bounding inequalities included $\begin{matrix} {{{LLP}\left( {\overset{\_}{x},u,v} \right)} = {\left\{ {x:\begin{matrix} {\min \quad A^{0}x} \\ {\overset{\_}{u} \leq {x - \overset{\_}{x}} \leq \overset{\_}{v}} \\ {{l\quad b} \leq {{\overset{\_}{C}}^{1} + {{\overset{\_}{A}}^{1}\left( {x - \overset{\_}{x}} \right)}} \leq {ub}} \end{matrix}} \right\}.}} & \left( \text{1.28} \right) \end{matrix}$

Method

[0075] The problems above have the following relationships.

Pbd(u,v)⊂ LP({overscore (x)},u,v)

If x′εLP({overscore (x)},u,v)then

Pbd(u,v)∩LP({overscore (x)},u,v)=Pbd(u,v)∩LP(x′,u,v)

If x′εLP({overscore (x)},u,v)then

Δ(x′)≦e(G−F)(z′+w′)≦Δ(u,v)=e(G−F)(v−u)

[0076] (Note that it is also true that if G_(ki)−F_(ki)=0, then {overscore (G)}_(ki)={overscore (F)}_(ki)=(B{overscore (x)})_(ki)=0, and that particular quadratic term will disappear from the constraint approximations in LP({overscore (x)},u,v).)

[0077] As we search for a solution for a problem PO0, we split the region up into nodes, each of which is given by a set of bounds {u,v}.

[0078] For any problem, the theory of Newton's method tells us that there is a constant θ>0 such that for any Δ(u,v)<θ, if Pbd(u,v) is feasible then the sequence of trial solutions generated by the linearization, {overscore (x)}^(m+1)=LLP({overscore (x)}^(m),u,v), will converge quadratically to the solution x*=Pbd(u,v), with

∥{overscore (x)} ^(m+2) −{overscore (x)} ^(m+1) ∥≦a∥{overscore (x)} ^(m+1) −{overscore (x)} ^(m)∥².

[0079] On the other hand by the theorems proven here, there is a constant θ>0 such that for any Δ(u,v)<θ, if Pbd(u,v) is infeasible then LP({overscore (x)},u,v) will be infeasible.

[0080] So a simplistic view of the method is to

[0081] 1) Choose a node {u,v}, and find a trial solution u≦{overscore (x)}≦v,

[0082] 2) Run {overscore (x)}^(m+1)=LLP({overscore (x)}^(m),u,v) and see if it finds a feasible point,

[0083] 3) Run xεLP({overscore (x)},u,v) and see if it is infeasible,

[0084] 4) If the node fails both (2) and (3), subdivide the node into smaller regions, and try again.

Expanding a Node

[0085] An open node specifies a particular trial solution and bounds, {{overscore (x)},u,v}. It also specifies a particular distribution of the quadratic terms B+B* (see the Symmetry Breaking of the Gradient Terms section below).

[0086] To expand the node, apply the procedure below until the node is fully expanded, or has been closed. The procedure will update the problem, its trial solution and bounds, will establish the status of the node, and will update a rigorous lower bound {overscore (φ)} of the objective function on the node.

[0087] Note that in the course of searching for a suitable node to expand (see section below), it may be desirable to apply only steps (1), (2), (3), and (4) in order to see if there exists a linearization node which succeeds in step (2). This will be referred to as partial expansion.

[0088] There are two basic patterns of application of these steps

[0089] A) Run linearization alone as long as possible

[0090] Run steps (1), (2), (3), and (4) when partially expanding a node. Run steps (5) and (6) when fully expanding a node.

[0091] B) Always seed linearization with a minimal infeasibility trial solution

[0092] Run steps (1), (4), (5), (2) and (3) when partially expanding a node. Run steps (5) (rerun) and (6) when fully expanding a node. Step (2) should include multiple iterations of linearization, otherwise the quadratic convergence property will be lost.

[0093] Let ε>0 be the basic numerical tolerance desired.

[0094] 1) Propagate the bounds through the problem (see the Convergence and Divergence of Trial Solutions section below). Update the node with the new bounds and/or problem terms

{u,v}={u′,v′}

{C,A,B}={C′,A′,B′}.

[0095] 2) Try to solve the linearization problem LLP({overscore (x)},u,v).

[0096] Optionally, one can solve a series of linearization problems, {overscore (x)}^(m+1)=LLP({overscore (x)}^(m),u,v). The series should be ended when:

[0097] The problem becomes infeasible;

[0098] A fixed upper limit of iterations is reached;

[0099] The trial solutions converge; or

[0100] The trial solutions diverge.

[0101] At the end of this series, if there exists a solution x′εLLP({overscore (x)},u,v), then use the solution as the new trial solution {overscore (x)}=x′, and declare the node linearized.

[0102] If there were a series of trial solutions found, then if the solutions converges or the upper limit reached, choose the final trial solution, but if the problem became infeasible or the trial solutions diverged, choose the trial solution with the minimum infeasibility, {overscore (x)}′=arg min_(m)Δ({overscore (x)}^(m)).

[0103] If the series was ended because the solutions converged, declare the node convergent.

[0104] If the series was ended because the solutions diverged, declare the node divergent.

[0105] In any case, set the optimal lower bound to the worst bound on the node, {overscore (φ)}=(A⁰)₊u+(A⁰)⁻v. (This will be reset in step 6, but is set here to support partial expansion.)

[0106] 3) If step (2) succeeds in determining a trial solution, compute the infeasibility of the new trial solution, Δ({overscore (x)}), and the maximum infeasibility of the bounds Δ(u,v).

[0107] If Δ(u,v)≦ε, all points satisfying x′εBd({overscore (x)},u,v) are feasible within the desired tolerance. Declare the node completely feasible and point-optimal. If Δ({overscore (x)})≦ε, then the trial solution is feasible within the desired tolerance. Declare the node point-feasible. (Note that completely feasible implies point-feasible.) (Note: if the node was convergent, it should be point-feasible.) If feasibility is all that is desired (as opposed to optimality), make the following substitution for steps (4)-(6)—If the node has been declared point-feasible, then close the node. If not, the node is completely expanded. Exit this procedure in either case.

[0108] If the node is linearized and point-feasible, then by the standard theory of Newton iteration, the trial solution is an approximate local solution to the nonlinear bounded problem Bd(u,v,F,G). Close the node and declare it point-optimal, and set the optimal lower bound for the node to the linearized optimum, {overscore (φ)}=A⁰{overscore (x)}.

[0109] Alternately, in the case where there are multiple local solutions within the same bounds, determine a local region within which the point is optimal, and close that newfound node, declaring it as point-optimal and point-feasible. Add a constraint to the original node such that the optimum must be strictly better than the found local optimum, A⁰x<{overscore (φ)}−ε and treat it as a new unopened node.

[0110] 4) If step (2) fails, try to solve the enveloping minimal infeasibility problem LPMI({overscore (x)},u,v).

[0111] If no such solution exists, close the node and declare it infeasible. Exit this procedure.

[0112] If there exists a solution x′εLPMI({overscore (x)},u,v), then use the solution as the new trial solution {overscore (x)}=x′. (Also record the auxiliary variables {z′,w′}.)

[0113] 5) Compute the infeasibility of the new trial solution, Δ({overscore (x)}), and the maximum infeasibility of the bounds Δ(u,v).

[0114] If Δ(u,v)≦ε, all points satisfying x′εLPMI({overscore (x)},u,v)are feasible within the desired tolerance. Declare the node completely feasible.

[0115] If Δ({overscore (x)})≦ε, then the trial solution is feasible within the desired tolerance. Declare the node point-feasible. (Note that completely feasible implies point-feasible.)

[0116] 6) If the node is not linearized, and is not infeasible, solve the enveloping optimal problem, x″εLPO({overscore (x)},u,v). Set the optimal lower bound to the resulting minimum, {overscore (φ)}=A⁰x″.

[0117] If the node is completely feasible, then use the new solution as the new trial solution {overscore (x)}=x″, close the node, and declare it point-optimal. Exit this procedure.

[0118] If the node is point-feasible and the lower bound is close enough to the trial solution, |{overscore (φ)}−A⁰{overscore (x)}|≦ε, close the node, and declare it point-optimal. (Do NOT use the new solution as the trial solution.) Exit this procedure. Otherwise, the node is completely expanded. Exit this procedure.

[0119] Alternately, if feasibility is all that is desired (as opposed to optimality), make the following substitution for step (6)—If the node has been declared point-feasible, then close the node. If not, the node is completely expanded. Exit this procedure in either case.

Choosing, Expanding, and Splitting a Node

[0120] Define φ* be the current best optimum found at a particular point in the search. That is $\phi^{*} = \left\{ {\begin{matrix} {\min\left( {{\overset{\_}{\phi}(N)}:{N\quad {is}\quad a\quad {point}\text{-}{optimal}\quad {node}}} \right)} \\ {\infty \quad {if}\quad {no}\quad {point}\text{-}{optimal}\quad {node}\quad {exists}} \end{matrix}.} \right.$

[0121] Let ε>0 be the basic numerical tolerance desired. Then we proceed as follows with the list of non-closed nodes.

[0122] 1) For all non-closed nodes N, if {overscore (φ)}(N)≧φ*−ε, close the node and declare it sub-optimal. Also, we can close those with bounds equal within tolerance to the best as well as those with bounds strictly greater. Alternately, if feasibility is all that is desired (as opposed to optimality), this step can be skipped.

[0123] 2) Choose a candidate set of nodes from the set of non-closed nodes according to the following.

[0124] If there are linearized nodes, select that set and proceed to step (3).

[0125] If there are nodes that have not yet been partially expanded, then partially expand nodes until either one is linearized, or all have been partially expanded, then go back to step (1).

[0126] At this point, one may optionally choose to fully expand all non-closed nodes, if there are any that need it, and go back to step (1).

[0127] If there are no fully expanded non-closed nodes and there are any non-closed nodes that have not been fully expanded, expand at least one of them and go back to step (1).

[0128] Select the set of expanded nodes and proceed to step (3).

[0129] Else all nodes have been closed, and you may terminate the procedure.

[0130] 3) From the set of non-closed nodes, we wish to select one to split. From the set of chosen nodes, select an individual node according to one of the following possible measures.

[0131] The node with the smallest infeasibility of the trial solution, Δ({overscore (x)}).

[0132] The node with the smallest {overscore (φ)}.

[0133] The node with the largest maximum infeasibility of the bounds, Δ(u,v).

[0134] These are suggested heuristics. Correctness only requires the expansion of an open node.

[0135] 4) It is now time to subdivide the node.

[0136] We will subdivide the point range. Compute $w = {\frac{\left( {u + v} \right)}{2}.}$

[0137] Optionally, one could also choose w={overscore (x)} if one wants to subdivide at the points of linearization.

[0138] If the node is linearized, and divergent, we will compute the worst divergence

i*=arg max_({i}) |{overscore (x)} _(i) ^(m+1) −{overscore (x)} _(i) ^(m)|.

[0139] If the node is not linearized, we will compute the dimension of the largest infeasibility according to the trial solution. $i^{*} = {\arg \quad {\max_{\{ i\}}{\sum\limits_{k}\quad {\left( {G_{ki} - F_{ki}} \right){\left( {z_{i} + w_{i}} \right).}}}}}$

[0140] Otherwise, we can compute the dimension of the largest infeasibility according to the point bounds. $i^{*} = {\arg \quad {\max_{\{ i\}}{\sum\limits_{k}\quad {\left( {G_{ki} - F_{ki}} \right){\left( {v_{i} - u_{i}} \right).}}}}}$

[0141] 5) Close the node, and open two new nodes with the same problem, trial solution, and bounds are the newly closed node, except that for the first new open node,

u _(i) ^(′) =u _(i) :∀i

v _(i) ^(′) =v _(i) :∀i≠i*

v _(i*) ^(′) =w _(i*)+ε/10

[0142] and for the second new open node,

u _(i) ^(′) =u _(i) :∀i≠i*

u _(i*) ^(′) =w _(i*)−ε/10.

v _(i) ^(′) =v _(i) :∀i

Initialization and Termination

[0143] To start the list of nodes, we require a problem {C,A,B}, a realistic set of finite bounds with a reasonable trial solution −∞<u≦{overscore (x)}≦v<∞ and a basic error tolerance ε.

[0144] To terminate the procedure, we continue to split, expand, and close nodes until all nodes have been closed. At that point we have either:

[0145] 1) There exists a point-optimal node whose value is as minimal as any other node, and thus the trial solution of that node is the optimum solution of the original problem; or

[0146] 2) All nodes are infeasible and so is the original problem. Alternately, if all we are interested in is feasibility, we only need look for any node that is point-feasible, in which case the trial solution is the feasible point.

Convergence and Divergence of Trial Solutions

[0147] By the theory associated with Newton's method, if the bounded problem is feasible, and the initial trial solution is “sufficiently” close to the solution x*=Pbd(u,v), then the series of trial solutions will be quadratically convergent, with ∥{overscore (x)}^(m+2)−{overscore (x)}^(m+1)∥≦α∥{overscore (x)}^(m+1)−{overscore (x)}^(m)∥². If the problem is infeasible, or if the initial trial solution is not sufficiently close, then examples from chaos theory show that almost any behavior may occur.

[0148] So our criterion for convergence or divergence will be the following.

[0149] The trial solutions diverge if ∥{overscore (x)}^(m+2)−{overscore (x)}^(m+1)∥>∥{overscore (x)}^(m+1)−{overscore (x)}^(m)∥.

[0150] The trial solutions converge if ∥{overscore (x)}^(m+2)−{overscore (x)}m+1∥≦ε.

[0151] Otherwise, we pass no judgment.

[0152] The measures used for convergence/divergence are purely pragmatic, and the metric ∥.∥ can be chosen for convenience, so that for example either the sum of difference, or the maximum difference can be used.

Simple Propagation of Bounds

[0153] Iterate the following propagations until no further improvement is seen. Alternately, include the square-free bound and the non-square-free bound propagations, until no improvement is found.

[0154] 1) If there exists a {k′,i′}:(G_(ki)−F_(ki))<ε, then to within the error tolerance, we can assume that $({Bx})_{k^{\prime}i^{\prime}} = \frac{\left( {F_{k^{\prime}i^{\prime}} + G_{k^{\prime}i^{\prime}}} \right)}{2}$

[0155] and we can then remove a quadratic term from the problem by adding the linear constraint $0 = {{- \frac{\left( {F_{k^{\prime}i^{\prime}} + G_{k^{\prime}i^{\prime}}} \right)}{2}} + {\sum\limits_{j}{B_{k^{\prime}{ji}^{\prime}}x_{j}}}}$

[0156] and modifying the original constraint ${f_{k^{\prime}}(x)} = {C_{k^{\prime}} + {\sum\limits_{i}{A_{k^{\prime}i}x_{i}}} + {\sum\limits_{ij}{B_{k^{\prime}{ji}}x_{j}x_{i}}}}$ to ${f_{k^{\prime}}(x)} = {C_{k^{\prime}} + {\sum\limits_{i}{A_{k^{\prime}i}x_{i}}} + {\frac{\left( {F_{k^{\prime}i^{\prime}} + G_{k^{\prime}i^{\prime}}} \right)}{2}x_{i^{\prime}}} + {\sum\limits_{i \neq {i^{\prime}j}}{B_{k^{\prime}{ji}}x_{j}{x_{i}.}}}}$

[0157] Let the new constraint have new index {circumflex over (k)}. Then

C′ _(k) =C _(k) :∀k≠k′

[0158] $C_{k^{\prime}}^{\prime} = {- \frac{\left( {F_{k^{\prime}i^{\prime}} + G_{k^{\prime}i^{\prime}}} \right)}{2}}$

 A′ _(ki) =A _(ki) :∀k≠k′∀i

A′ _(k′i) =A _(k′i) :∀i≠i′

[0159] $A_{k^{\prime}i^{\prime}}^{\prime} = {A_{k^{\prime}i^{\prime}} + \frac{\left( {F_{k^{\prime}i^{\prime}} + G_{k^{\prime}i^{\prime}}} \right)}{2}}$

 A′ _({circumflex over (k)}i) =B _(k′ii′) :∀i

B′ _(kji) =B _(kji) :∀k≠k′∀j∀i

B′ _(k′ji) =B _(k′ji) :∀j∀i≠i′

B′ _(k′ji′)=0:∀j

B′ _({circumflex over (k)}ji)=0:∀j∀i

[0160] 2) For every linear constraint ${k:{f_{k}(x)}} = {C_{k} + {\sum\limits_{i}{A_{ki}x_{i}}}}$

[0161] we can determine new point bounds ${\forall{k \in K_{1}}},{f_{k}\quad {linear}},{\forall{i:\left\{ {{\begin{matrix} {\left. {A_{ki} > 0}\Rightarrow v_{i}^{\prime} \right. = {\min\left( {v_{i}^{\prime},\frac{{ub}_{k} - C_{k}^{\prime} - {\sum\limits_{j \neq i}{\left( A_{kj} \right)_{+}u_{j}^{\prime}}} - {\sum\limits_{j \neq i}{\left( A_{kj} \right)_{-}v_{j}^{\prime}}}}{A_{ki}}} \right)}} \\ {\left. {A_{ki} < 0}\Rightarrow v_{i}^{\prime} \right. = {\min\left( {v_{i}^{\prime},\frac{{l\quad b_{k}} - C_{k}^{\prime} - {\sum\limits_{j \neq i}{\left( A_{kj} \right)_{+}v_{j}^{\prime}}} - {\sum\limits_{j \neq i}{\left( A_{kj} \right)_{-}u_{j}^{\prime}}}}{A_{ki}}} \right)}} \end{matrix}{\forall{k \in K_{1}}}},{f_{k}\quad {linear}},{\forall{i:\left\{ \begin{matrix} {\left. {A_{ki} > 0}\Rightarrow u_{i}^{\prime} \right. = {\max\left( {u_{i}^{\prime},\frac{{l\quad b_{k}} - C_{k}^{\prime} - {\sum\limits_{j \neq i}{\left( A_{kj} \right)_{+}v_{j}^{\prime}}} - {\sum\limits_{j \neq i}{\left( A_{kj} \right)_{-}u_{j}^{\prime}}}}{A_{ki}}} \right)}} \\ {\left. {A_{ki} < 0}\Rightarrow u_{i}^{\prime} \right. = {\max\left( {u_{i}^{\prime},\frac{{ub}_{k} - C_{k}^{\prime} - {\sum\limits_{j \neq i}{\left( A_{kj} \right)_{+}u_{j}^{\prime}}} - {\sum\limits_{j \neq i}{\left( A_{kj} \right)_{-}v_{j}^{\prime}}}}{A_{ki}}} \right)}} \end{matrix} \right.}}} \right.}}$

Symmetry Breaking of the Gradient Terms

[0162] We can exploit the fact that the original quadratic functions only are affected by the value B+B* in order to attempt to reduce the degree of nonlinearity. This should be applied sparingly, as every time this rule is applied the gradient bounds deteriorate. It should definitely be applied at the initialization of the method.

[0163] Even if the heuristic below is not applied, the B used should be upper triangular under some permutation of the variables. That is, for any constraint k and variable pair {i, j}, either B_(kij)=0 or B_(kji)=0. This is to minimize the number of terms actually present in the quadratic expressions.

[0164] To apply the rule in the initial step, we redistribute the symmetric elements in B according to the heuristic rule of putting all the quadratic “weight” on the variable with the smallest range (break ties lexicographically)

[0165] (Initialization at iteration 0.) ${{\forall\left\{ {k,i,j} \right\}}:{{{if}\quad {{v_{j} - u_{j}}}} < {{v_{i} - u_{i}}}}},{{then}\quad \left\{ \begin{matrix} {B_{kij}^{\prime} = {B_{kij} + B_{kji}}} \\ {B_{kji}^{\prime} = 0.} \end{matrix} \right.}$

[0166] To apply the rule in subsequent step, we redistribute the symmetric elements in B only if there is a significant difference between the variables' ranges

[0167] (At iteration m) ${{\forall\left\{ {k,i,j} \right\}}:{{{if}\quad {{v_{j} - u_{j}}}} < {10^{*}{{v_{i} - u_{i}}}\quad {and}\quad B_{kji}} \neq 0}},{{then}\quad \left\{ \begin{matrix} {B_{kij}^{\prime} = {B_{kij} + B_{kji}}} \\ {B_{kji}^{\prime} = 0.} \end{matrix} \right.}$

Square-Free Bound Propagation

[0168] Assume we have a quadratic function inequality ${{l\quad b_{k}} \leq {f_{k}(x)}} = {{C_{k} + {\sum\limits_{i}{A_{ki}x_{i}}} + {\sum\limits_{ij}{B_{kji}x_{j}x_{i}}}} \leq {ub}_{k}}$

[0169] a set of point bounds u≦x≦v, and wish to refine the bounds for a variable x_(J). We will ignore any benefits of explicitly considering square terms x_(J) ² in the function ƒ_(k), (hence “square-free propagation”) although we will allow squared terms for variables other than x_(J) to appear. The Non-Square-Free Bound Propagation section explores the additional benefits of explicitly considering x_(J) ².

[0170] In order to apply the Lemmas (see section below), we first rearrange the inequalities into the form ${{l\quad b_{k}} - C_{k}} \leq {{A_{kJ}x_{J}} + {\left( {{\sum\limits_{i \neq J}{\left( {B_{kJi} + B_{kiJ}} \right)x_{i}}} + {B_{JJ}x_{J}}} \right)x_{J}} + {\sum\limits_{i \neq J}{A_{ki}x_{i}}} + {\sum\limits_{{i \neq J},{j \neq J}}{B_{kji}x_{J}x_{i}}}} \leq {{ub}_{k} - C_{k}}$

[0171] and so if we define $\beta = \left( {A_{kJ} + {\sum\limits_{i \neq J}{\left( {B_{kJi} + B_{kiJ}} \right)x_{i}}} + {B_{JJ}x_{J}}} \right)$

 γ=βx _(J)

[0172] we also have ${{l\quad b_{k}} - C_{k} - {\sum\limits_{i \neq J}{A_{ki}x_{i}}} - {\sum\limits_{{i \neq J},{j \neq J}}{B_{kji}x_{j}x_{i}}}} \leq \gamma \leq {{ub}_{k} - C_{k} - {\sum\limits_{i \neq J}{A_{ki}x_{i}}} - {\sum\limits_{{i \neq J},{j \neq J}}{B_{kji}x_{j}x_{i}}}}$

[0173] From the Bounding Lemmas section, we define the bounding functions for multiply and square

μxy(x ₀ ,x ₁ ,y ₀ ,y ₁)=min(x ₀ y ₀ ,x ₁ y ₀ ,x ₀ y ₁ ,x ₁ y ₁)

vxy(x ₀ ,x ₁ ,y ₀ ,y ₁)=max(x ₀ y ₀ ,x ₁ y ₀ ,x ₀ y ₁ ,x ₁ y ₁)

μxx(x ₀ ,x ₁)=min(x ₀ ²,(x ₀ x ₁)₊ ,x ₁ ²)

vxx(x ₀ ,x ₁)=max(x ₀ ²,(x ₀ x ₁)₊ ,x ₁ ²).

[0174] We then define bounds β₀≦β≦β₁ and γ₀≦γ≦γ₁ for {β,γ} $\begin{matrix} {\beta_{0} = \quad {A_{kJ} + {\sum\limits_{i \neq J}{\left( {B_{kJi} + B_{kiJ}} \right)_{+}u_{i}}} + {\sum\limits_{i \neq J}{\left( {B_{kJi} + B_{kiJ}} \right)_{-}v_{i}}} + {\left( B_{JJ} \right)_{+}u_{j}} +}} \\ {\quad {\left( B_{JJ} \right)_{-}v_{J}}} \\ {\beta_{1} = \quad {A_{kJ} + {\sum\limits_{i \neq J}{\left( {B_{kJi} + B_{kiJ}} \right)_{+}v_{i}}} + {\sum\limits_{i \neq J}{\left( {B_{kJi} + B_{kiJ}} \right)_{-}u_{i}}} + {\left( B_{JJ} \right)_{+}v_{j}} +}} \\ {\quad {\left( B_{JJ} \right)_{-}u_{J}}} \\ {\gamma_{0} = \quad {{l\quad b_{k}} - C_{k} - {\sum\limits_{i \neq J}{\left( A_{ki} \right)_{+}v_{i}}} - {\sum\limits_{i \neq J}{\left( A_{ki} \right)_{-}u_{i}}} -}} \\ {\quad {{\sum\limits_{{i \neq J},{j \neq J},{i \neq j}}{\left( B_{kji} \right)_{+}{{vxy}\left( {u_{j},v_{j},u_{i},v_{i}} \right)}}} -}} \\ {\quad {{\sum\limits_{{i \neq J},{j \neq J},{i \neq j}}{\left( B_{kji} \right)_{-}\mu \quad {{xy}\left( {u_{j},v_{j},u_{i},v_{i}} \right)}}} -}} \\ {\quad {{\sum\limits_{i \neq J}{\left( B_{kii} \right)_{+}{{vxx}\left( {u_{i},v_{i}} \right)}}} - {\sum\limits_{i \neq J}{\left( B_{kii} \right)_{-}\mu \quad {{xx}\left( {u_{i},v_{i}} \right)}}}}} \\ {\gamma_{1} = \quad {{u\quad b_{k}} - C_{k} - {\sum\limits_{i \neq J}{\left( A_{ki} \right)_{+}u_{i}}} - {\sum\limits_{i \neq J}{\left( A_{ki} \right)_{-}v_{i}}} -}} \\ {\quad {{\sum\limits_{{i \neq J},{j \neq J},{i \neq j}}{\left( B_{kji} \right)_{+}\mu \quad {{xy}\left( {u_{j},v_{j},u_{i},v_{i}} \right)}}} -}} \\ {\quad {{\sum\limits_{{i \neq J},{j \neq J},{i \neq j}}{\left( B_{kji} \right)_{-}{{vxy}\left( {u_{j},v_{j},u_{i},v_{i}} \right)}}} -}} \\ {\quad {{\sum\limits_{i \neq J}{\left( B_{kii} \right)_{+}\mu \quad {{xx}\left( {u_{i},v_{i}} \right)}}} - {\sum\limits_{i \neq J}{\left( B_{kii} \right)_{-}v\quad {{xx}\left( {u_{i},v_{i}} \right)}}}}} \end{matrix}$

[0175] Form the set {β₀,β₁,γ₀γ₁}. We now need to split up the set into the cases considered in Lemma B.4.

[0176] For each set {β₀,β₁,γ₀,γ₁}, if it is the case that β₀≦0≦β₁, then split the set into two sets, {β₀,0,γ₀,γ₁} and {0,β₁,γ₀,γ₁}.

[0177] For each set {β₀,β₁,γ₀,γ₁}, if it is the case that γ₀≦0≦γ₁, then split the set into two sets, {β₀,β₁,γ₀,0} and {β₀,β₁,0γ₁}.

[0178] Up to four separate sets may result from this procedure.

[0179] For each set B^(m)={β₀,β₁,γ₀,γ₁}, use Lemma B.4 to compute a range u′_(m)≦x_(J)≦v′_(m) for each set. Restrict each range by the original bounds (allowing for the possibility that the range will be empty).

u′ _(m)=max(u _(J) ,u′ _(m))

v′ _(m)=min(v _(J) ,v′ _(m))

[0180] Given the resulting sets of ranges {{u′_(m), v′_(m)}:m=1 . . . M}, the variable will be in their union, $x_{J} \in {\bigcup\limits_{m}{\left\{ {u_{m}^{\prime},v_{m}^{\prime}} \right\}.}}$

[0181] One can simplify them by sorting first by u′_(m) then by v′_(m) and then iteratively applying the following rule until no further simplifications are possible

[0182] 1) If u′_(m)≦u′_(m+1) and u′_(m+1)≦v′_(m) then {min(u′_(m), u′_(m+1)), max(v′_(m),v′_(m+1))}={u′_(m),v′_(m)}∪{u′_(m+1),v′_(m+1)} can replace both ranges.

[0183] 2) If v′_(m)<u′_(m), then delete the interval as being infeasible.

[0184] Given a set of multiple simplified ranges, there are two possible ways to apply them to the original node

[0185] A) By conservatively bounding the multiple ranges, the node with bounds N={{u_(J), v_(J)},{u_(i),v_(i)}:i≠J} can be refined to N={{min_(m)(u′_(m)), max_(m)(v′_(m))};{u_(i),v_(i)}:i≠J}.

[0186] B) The node with bounds N={{u_(J),v_(J)},{u_(i),v_(i)}:i≠i J} can be split into multiple refined nodes N_(m={{u′) _(m),v′_(m)},{u_(i),v_(i)}:i≠J}.

[0187] C) A third option would be to look at the benefit of splitting according to (B) over using the simple bounds of (A) by computing the ratio of the ranges $\rho = {\frac{\sum\left( {v_{m}^{\prime} - u_{m}^{\prime}} \right)}{{\max_{m}\left( v_{m}^{\prime} \right)} - {\min_{m}\left( u_{m}^{\prime} \right)}}.}$

[0188]  and only splitting the node if the benefit is sufficient, say ρ≦.5 (the equivalent of one subdivision).

Non-Square-Free Bound Propagation

[0189] The procedure here is similar to that in the Square-Free Bound Propagation section, except that the squared term x_(J) ² does appear in the function ƒ_(k), so the defined bounds β₀≦β≦β₁ and γ₀≦γ≦γ₁ will differ by a factor of the reciprocal of the coefficient of x_(J) ², and Lemma B.5 will be invoked instead of Lemma B.4.

[0190] In order to apply the Lemmas, we first rearrange the inequalities into the form ${{l\quad b_{k}} - C_{k}} \leq {{A_{kJ}x_{J}} + {\left( {\sum\limits_{i \neq J}{\left( {B_{kJi} + B_{kiJ}} \right)x_{i}}} \right)x_{J}} + {B_{kJJ}x_{J}^{2}} + {\sum\limits_{i \neq J}{A_{ki}x_{i}}} + {\sum\limits_{{i \neq J},{j \neq J}}{B_{kji}x_{j}x_{i}}}} \leq {{ub}_{k} - C_{k}}$

[0191] and so if we define $\beta = \frac{\left( {A_{kJ} + {\sum\limits_{i \neq J}{\left( {B_{kJi} + B_{kiJ}} \right)x_{i}}}} \right)}{B_{kJJ}}$

 γ=βx _(J) +x _(J) ²

[0192] we also have ${{l\quad b_{k}} - C_{k} - {\sum\limits_{i \neq J}{A_{ki}x_{i}}} - {\sum\limits_{{i \neq J},{j \neq J}}{B_{kji}x_{j}x_{i}}}} \leq {B_{kJJ}\gamma} \leq {{ub}_{k} - C_{k} - {\sum\limits_{i \neq J}{A_{ki}x_{i}}} - {\sum\limits_{{i \neq J},{j \neq J}}{B_{kji}x_{j}x_{i}}}}$

[0193] We use the same bounding functions from the Square-Free Bound Propagation section.

[0194] We then define bounds β₀≦β≦β₁ and γ₀≦γ≦γ₁ for {β,γ} based on the sign of B_(kJJ) ${\hat{\beta}}_{0} = {A_{kJ} + {\sum\limits_{i \neq J}{\left( {B_{kJi} + B_{kiJ}} \right)_{+}u_{i}}} + {\sum\limits_{i \neq J}{\left( {B_{kJi} + B_{kiJ}} \right)_{-}v_{i}}}}$ ${\hat{\beta}}_{1} = {A_{kJ} + {\sum\limits_{i \neq J}{\left( {B_{kJi} + B_{kiJ}} \right)_{+}v_{i}}} + {\sum\limits_{i \neq J}{\left( {B_{kJi} + B_{kiJ}} \right)_{-}u_{i}}}}$

[0195] If B_(kJJ)>0 $\beta_{0} = \frac{{\hat{\beta}}_{0}}{B_{kJJ}}$ $\beta_{1} = \frac{{\hat{\beta}}_{1}}{B_{kJJ}}$ $\gamma_{0} = \frac{{\hat{\gamma}}_{0}}{B_{kJJ}}$ $\gamma_{1} = \frac{{\hat{\gamma}}_{1}}{B_{kJJ}}$

[0196] If B_(kJJ)<0 $\beta_{0} = \frac{{\hat{\beta}}_{1}}{B_{kJJ}}$ $\beta_{1} = \frac{{\hat{\beta}}_{0}}{B_{kJJ}}$ $\gamma_{0} = \frac{{\hat{\gamma}}_{1}}{B_{kJJ}}$ $\gamma_{1} = \frac{{\hat{\gamma}}_{0}}{B_{kJJ}}$

[0197] We now follow the same procedure as in the Square-Free Bound Propagation section, except that we apply Lemma B.5 to the generation of the ranges $x_{J} \in {\bigcup\limits_{m}{\left\{ {u_{m}^{\prime},v_{m}^{\prime}} \right\}.}}$

[0198] Note that unlike Lemma B.4, each case in Lemma B.5 may themselves generate multiple or empty ranges.

Proofs for Nonlinear Function Problems

[0199] For the time being, let us consider only feasibility, although the same approach applies to optimization as well.

[0200] Let ƒ(x):

^(n)→

^(m) be a function with Lipschitz-continuous derivatives.

[0201] Assume we have a trial solution {overscore (x)}. By the mean value theorem, for every point x there exists a point {tilde over (x)} (on the segment between {overscore (x)} and x) such that

ƒ_(k)(x)=ƒ_(k)({overscore (x)})+∇ƒ_(k)({tilde over (x)})(x−{overscore (x)})  (A.1)

[0202] Within a set of point bounds,

u≦x≦v  (A.2)

[0203] there exist gradient bounds

F _(k)(u,v)=inf{∇ƒ_(k)(x):u≦x≦v}

G _(k)(u,v)=sup{∇ƒ_(k)(x):u≦x≦v}  (A.3)

[0204] so that

u≦x≦v

F≦∇ƒ(x)≦G  (A.4)

[0205] (For notational convenience, we will suppress the functional dependence of F and G on u and v.)

[0206] We will assume that the trial solution satisfies the bounds

u≦{overscore (x)}≦v  (A.5)

[0207] If we define

{overscore (u)}=u−{overscore (x)}

{overscore (v)}=v−{overscore (x)}

{overscore (F)}=F−∇ƒ({overscore (x)})

{overscore (G)}=G−∇ƒ({overscore (x)})  (A.6)

[0208] we will get the enveloping inequalities $\begin{matrix} \left. {\overset{\_}{u} \leq {x - \overset{\_}{x}} \leq \overset{\_}{v}}\Rightarrow{{{f\left( \overset{\_}{x} \right)} + {{\nabla{f\left( \overset{\_}{x} \right)}}\left( {x - \overset{\_}{x}} \right)} + {F\left( {x - \overset{\_}{x}} \right)}_{+} + {G\left( {x - \overset{\_}{x}} \right)}_{-}} \leq {f(x)} \leq {{f\left( \overset{\_}{x} \right)} + {{\nabla{f\left( \overset{\_}{x} \right)}}\left( {x - \overset{\_}{x}} \right)} + {G\left( {x - \overset{\_}{x}} \right)}_{+} + {{F\left( {x - \overset{\_}{x}} \right)}_{-}.}}} \right. & \text{(A.7)} \end{matrix}$

[0209] Now consider the following series of problems $\begin{matrix} {{P0} = \left\{ {x:\begin{matrix} {u^{0} \leq x \leq v^{0}} \\ {{l\quad b} \leq {f(x)} \leq {ub}} \end{matrix}} \right\}} & \text{(A.8)} \\ {{{Pbd}\left( {u,v} \right)} = \left\{ {x:\begin{matrix} {u \leq x \leq v} \\ {{l\quad b} \leq {f(x)} \leq {ub}} \end{matrix}} \right\}} & \text{(A.9)} \\ {{{LP}\left( {\overset{\_}{x},u,v} \right)} = \left\{ {x,z,{w:\begin{matrix} {\overset{\_}{u} \leq {x - \overset{\_}{x}} \leq \overset{\_}{v}} \\ {{l\quad b} \leq {{f\left( \overset{\_}{x} \right)} + {{\nabla{f\left( \overset{\_}{x} \right)}}\left( {x - \overset{\_}{x}} \right)} + {\overset{\_}{G}z} - {\overset{\_}{F}w}}} \\ {{ub} \geq {{f\left( \overset{\_}{x} \right)} + {{\nabla{f\left( \overset{\_}{x} \right)}}\left( {x - \overset{\_}{x}} \right)} + {\overset{\_}{F}z} - {\overset{\_}{G}w}}} \\ {{x - \overset{\_}{x}} = {z - w}} \\ {{z + w} \leq {\max \left( {{\overset{\_}{v}},{\overset{\_}{u}}} \right)}} \\ {z,{w \geq 0}} \end{matrix}}} \right\}} & \text{(A.10)} \end{matrix}$

[0210] Define the infeasibility of a particular point to be

Δ_(k)(x)=max((ƒ_(k)(x)−ub _(k))₊,(lb _(k)−ƒ_(k)(x))₊)  (A.11)

[0211] (As a result Δ(x)≧0, and Δ(x)=0 only if the point x is feasible.)

[0212] Theorem 1

[0213] T1-1) For every xεP0, there exist bounds {u,v) such that xεPbd(u,v).

[0214] T1-2) Pbd(u,v)⊂LP({overscore (x)},u,v).

[0215] T1-3) For every {x,u,v}εLP({overscore (x)},u,v),

Δ(x)≦(G−F)(z+w)≦(G−F)max(|{overscore (u)}|,|{overscore (v)}|)≦(G−F)(v−u).

[0216] Corollary 1

Pbd(u,v)∩LP({overscore (x)},u,v)=Pbd(u,v)∩LP(x′,u,v),

[0217] For the quadratic problem,

ƒ(x)=C+Ax+Bxx  (A.12)

[0218] and we can find

[0219] $\overset{\sim}{x} = {\frac{1}{2}\left( {x + \overset{\_}{x}} \right)}$

 ∇ƒ({overscore (x)})={overscore (A)}=A+(B+B*){overscore (x)}

∇ƒ({tilde over (x)})−Δƒ({overscore (x)})=B(x−{overscore (x)})  (A.13)

[0220] so we can compute a set of gradient bounds

F=(B)₊ u+(B)⁻ v

G=(B)₊ v+(B)⁻ u  (A.14)

[0221] so that

u≦x≦v

F≦Bx≦G

{overscore (F)}=F−B{overscore (x)}≦B(x−{overscore (x)}l )=∇ƒ( {tilde over (x)})−∇ƒ({overscore (x)})≦G−B{overscore (x)}={overscore (G)}.  (A.15)

Bounding Lemmas

[0222] Lemma B.1

[0223] Let z=xy. If x₀≦x≦x₁ and y₀≦y≦y₁, then

min(x ₀ y ₀ ,x ₁ y ₀ ,x ₀ y ₁ ,x ₁ y ₁)≦z≦max(x ₀ y ₀ ,x ₁ y ₀ ,x ₀ y ₁ ,x ₁ y ₁)

[0224] Lemma B.2

[0225] Let z=x². If x₀≦x≦x₁, then

min(x ₀ ²,(x ₀ x ₁)₊ ,x ₁ ²)≦z≦max(x ₀ ²,(x ₀ x ₁)₊ ,x ₁ ²)

[0226] Or equivalently, Lemma B.3

[0227] Let z=x². If x₀≦x≦x₁, then

[0228] a) If x₀≦x₁≦0 or 0≦x₀≦x₁ then

min(x ₀ ² ,x ₁ ²)≦z≦max(x ₀ ² ,x ₁ ²)

[0229] b) If x₀≦0≦x₁ then

0≦z≦max(x ₀ ² ,x ₁ ²)

[0230] Lemma B.4

[0231] Let γ=βx. If β₀≦β≦β₁ and γ₀≦γ≦γ₁, then

[0232] I) If 0≦β₀≦β₁ and 0≦γ₀≦γ₁ then $\frac{\gamma_{0}}{\beta_{1}} \leq x \leq {\frac{\gamma_{1}}{\beta_{0}}\quad \left( {{\frac{\gamma_{0}}{\beta_{1}} \leq x \leq {\infty \quad {if}\quad \beta_{0}}} = 0} \right)}$

[0233] II) If β₀≦β₁≦0 and 0≦γ₀≦γ₁, then $\frac{\gamma_{1}}{\beta_{1}} \leq x \leq {\frac{\gamma_{0}}{\beta_{0}}\quad \left( {{{- \infty} \leq x \leq {\frac{\gamma_{0}}{\beta_{0}}\quad {if}\quad \beta_{1}}} = 0} \right)}$

[0234] III) If 0≦β₀≦β₁ and γ₀≦γ₁≦0 then $\frac{\gamma_{0}}{\beta_{0}} \leq x \leq {\frac{\gamma_{1}}{\beta_{1}}\quad \left( {{{- \infty} \leq x \leq {\frac{\gamma_{1}}{\beta_{1}}\quad {if}\quad \beta_{0}}} = 0} \right)}$

[0235] IV) If β₀≦β₁≦0 and γ₀≦γ₁≦0, then $\frac{\gamma_{1}}{\beta_{0}} \leq x \leq {\frac{\gamma_{0}}{\beta_{1}}\quad \left( {{\frac{\gamma_{1}}{\beta_{0}} \leq x \leq {\infty \quad {if}\quad \beta_{1}}} = 0} \right)}$

[0236] The following is an equivalent form, more convenient in some cases Lemma B.4′

[0237] Let γ=βx. If β₀≦β≦β₂ and γ₀≦γ≦γ₁, then

[0238] I,III) If 0≦β₀≦β₁ then ${\min \left( {\frac{\gamma_{0}}{\beta_{0}},\frac{\gamma_{0}}{\beta 1}} \right)} \leq x \leq {{\max \left( {\frac{\gamma_{1}}{\beta_{0}},\frac{\gamma_{1}}{\beta_{1}}} \right)}\quad \left( {{\frac{1}{\beta_{0}} \approx {\infty \quad {if}\quad \beta_{0}}} = 0} \right)}$

[0239] II,IV) If β₀≦β₁≦0, then ${\min \left( {\frac{\gamma_{1}}{\beta_{0}},\frac{\gamma_{1}}{\beta_{1}}} \right)} \leq x \leq {{\max \left( {\frac{\gamma_{0}}{\beta_{0}},\frac{\gamma_{0}}{\beta_{1}}} \right)}\quad \left( {{\frac{1}{\beta_{1}} \approx {{- \infty}\quad {if}\quad \beta_{1}}} = 0} \right)}$

[0240] Lemma B.5—(Note that Cases I and II result in identical results.)

[0241] Let γ=βx+x². If β₀≦β≦β₁ and γ₀≦γ≦γ₁, then

[0242] I) If 0≦β₀≦β₁ and 0≦γ₀≦γ₁ then ${{- \frac{\beta_{1}}{2}} - \sqrt{\frac{\beta_{1}^{2}}{4} + \gamma_{1}}} \leq x \leq {{- \frac{\beta_{0}}{2}} + \sqrt{\frac{\beta_{0}^{2}}{4} + \gamma_{1}}}$

[0243]  or more accurately, ${{either}\quad - \frac{\beta_{1}}{2} - \sqrt{\frac{\beta_{1}^{2}}{4} + \gamma_{1}}} \leq x \leq {{- \frac{\beta_{0}}{2}} - \sqrt{\frac{\beta_{0}^{2}}{4} + \gamma_{0}}}$

${{or}\quad - \frac{\beta_{1}}{2} + \sqrt{\frac{\beta_{1}^{2}}{4} + \gamma_{0}}} \leq x \leq {{- \frac{\beta_{0}}{2}} + \sqrt{\frac{\beta_{0}^{2}}{4} + \gamma_{1}}}$

[0244] II) If β₀≦β₁≦0 and 0≦γ₀≦γ₁, then ${{- \frac{\beta_{1}}{2}} - \sqrt{\frac{\beta_{1}^{2}}{4} + \gamma_{1}}} \leq x \leq {{- \frac{\beta_{0}}{2}} + \sqrt{\frac{\beta_{0}^{2}}{4} + \gamma_{1}}}$

[0245]  or more accurately, ${{either}\quad - \frac{\beta_{1}}{2} - \sqrt{\frac{\beta_{1}^{2}}{4} + \gamma_{1}}} \leq x \leq {{- \frac{\beta_{0}}{2}} - \sqrt{\frac{\beta_{0}^{2}}{4} + \gamma_{0}}}$ ${{or}\quad - \frac{\beta_{1}}{2} + \sqrt{\frac{\beta_{1}^{2}}{4} + \gamma_{0}}} \leq x \leq {{- \frac{\beta_{0}}{2}} + \sqrt{\frac{\beta_{0}^{2}}{4} + \gamma_{1}}}$

[0246] III) If 0≦β₀≦β₁ and γ₀≦γ₁≦0 then

[0247] III.a) If ${{\frac{\beta_{1}^{2}}{4} + \gamma_{1}} < 0},$

[0248]  then there are no possible solutions for x.

[0249] III.b) If ${{\frac{\beta_{1}^{2}}{4} + \gamma_{1}} \geq 0},$

[0250]  then ${{- \frac{\beta_{1}}{2}} - \sqrt{\frac{\beta_{1}^{2}}{4} + \gamma_{1}}} \leq \gamma \leq {{- \frac{\beta_{1}}{2}} + \sqrt{\frac{\beta_{1}^{2}}{4} + \gamma_{1}}}$

[0251]  or more accurately,

[0252] either ${{- \frac{\beta_{1}}{2}} - \sqrt{\frac{\beta_{1}^{2}}{4} + \gamma_{1}}} \leq x \leq {{- \frac{\beta_{0}}{2}} - \sqrt{\left( {\frac{\beta_{0}^{2}}{4} + \gamma_{0}} \right)_{+}}}$

[0253] or ${{- \frac{\beta_{0}}{2}} + \sqrt{\left( {\frac{\beta_{0}^{2}}{4} + \gamma_{0}} \right)_{+}}} \leq x \leq {{- \frac{\beta_{1}}{2}} + \sqrt{\frac{\beta_{1}^{2}}{4} + \gamma_{1}}}$

[0254] IV) If β₀≦β₁≦0 and γ₀≦γ₁≦0, then

[0255] III.a) If ${{\frac{\beta_{0}^{2}}{4} + \gamma_{1}} < 0},$

[0256]  then there are no possible solutions for x.

[0257] III.b) If ${{\frac{\beta_{0}^{2}}{4} + \gamma_{1}} \geq 0},$

[0258]  then ${{- \frac{\beta_{0}}{2}} - \sqrt{\frac{\beta_{0}^{2}}{4} + \gamma_{1}}} \leq x \leq {{- \frac{\beta_{0}}{2}} + \sqrt{\frac{\beta_{0}^{2}}{4} + \gamma_{1}}}$

[0259]  or more accurately,

[0260] either ${{- \frac{\beta_{0}}{2}} - \sqrt{\frac{\beta_{0}^{2}}{4} + \gamma_{1}}} \leq x \leq {{- \frac{\beta_{1}}{2}} - \sqrt{\left( {\frac{\beta_{1}^{2}}{4} + \gamma_{0}} \right)_{+}}}$

[0261] or ${{- \frac{\beta_{1}}{2}} + \sqrt{\left( {\frac{\beta_{1}^{2}}{4} + \gamma_{0}} \right)_{+}}} \leq x \leq {{- \frac{\beta_{0}}{2}} + \sqrt{\frac{\beta_{0}^{2}}{4} + \gamma_{1}}}$

Gradient Bound Subdivision

[0262] It is also viable for the quadratic-only problem to subdivide the gradient bounds directly, e.g. by choosing a dimension {k′,i′} and subdividing that gradient bound, e.g. at ${H_{ki} = \frac{F_{ki} + G_{ki}}{2}},$

[0263] or H_(ki)=(B{overscore (x)})_(ki) if subdivision at the linearization points is desired. In that case, (1.9) no longer applies, so it is necessary to include the gradient inequalities F≦Bx≦G directly in the problems (1.23)-(1.28) as explicit inequalities. Theorem 1 and Corollary 1 will still apply.

[0264] If one is subdividing the gradients, then there is additional bound propagation between the point bounds and the gradient bounds that can be defined

[0265] 1) To refine the gradient bounds

F′=max(F, (B)₊ u+(B)⁻ v)

G′=min(G, (B)₊ v+(B)⁻ u)

[0266] 2) To refine the point upper bounds

∀j:v′ _(j) =v _(j)

[0267] ${\forall k},i,{j:\left\{ \begin{matrix} {\left. {B_{kji} > 0}\Rightarrow v_{j}^{\prime} \right. = {\min \quad \left( {v_{j}^{\prime},\frac{G_{ki}^{\prime} - {\sum\limits_{\hat{j} \neq j}{\left( B_{k\hat{j}i} \right)_{+}u_{\hat{j}}^{\prime}}} - {\sum\limits_{\hat{j} \neq j}{\left( B_{k\hat{j}i} \right)_{-}v_{\hat{j}}^{\prime}}}}{B_{kji}}} \right)}} \\ {\left. {B_{kji} < 0}\Rightarrow v_{j}^{\prime} \right. = {\min \quad \left( {v_{j}^{\prime},\frac{F_{ki}^{\prime} - {\sum\limits_{\hat{j} \neq j}{\left( B_{k\hat{j}i} \right)_{+}v_{\hat{j}}^{\prime}}} - {\sum\limits_{\hat{j} \neq j}{\left( B_{k\hat{j}i} \right)_{-}u_{\hat{j}}^{\prime}}}}{B_{kji}}} \right)}} \end{matrix} \right.}$

[0268] To refine the point lower bounds

∀j:u′ _(j) =u _(j)

[0269] ${\forall k},i,{j:\left\{ \begin{matrix} {\left. {B_{kji} > 0}\Rightarrow u_{j}^{\prime} \right. = {\max \quad \left( {u_{j}^{\prime},\frac{F_{ki}^{\prime} - {\sum\limits_{\hat{j} \neq j}{\left( B_{k\hat{j}i} \right)_{+}v_{\hat{j}}^{\prime}}} - {\sum\limits_{\hat{j} \neq j}{\left( B_{k\hat{j}i} \right)_{-}u_{\hat{j}}^{\prime}}}}{B_{kji}}} \right)}} \\ {\left. {B_{kji} < 0}\Rightarrow u_{j}^{\prime} \right. = {\max \quad \left( {u_{j}^{\prime},\frac{G_{ki}^{\prime} - {\sum\limits_{\hat{j} \neq j}{\left( B_{k\hat{j}i} \right)_{+}u_{\hat{j}}^{\prime}}} - {\sum\limits_{\hat{j} \neq j}{\left( B_{k\hat{j}i} \right)_{-}v_{\hat{j}}^{\prime}}}}{B_{kji}}} \right)}} \end{matrix} \right.}$

[0270] Robust Linear Propagation

[0271] The following modifies (2) in the Simple Propagation of Bounds to account for possible numerical problems. Let ε>0 be our numerical tolerance. For every linear constraint ${k:{f_{k}(x)}} = {C_{k} + {\sum\limits_{i}{A_{ki}x_{i}}}}$

[0272] and for every variable x_(i) which appears in ƒ_(k) and such that |A_(ki)|>ε, we define the following at each stage of the iteration where the bounds at that iteration are {u, v}. $\begin{matrix} {p_{ki} = {{lb}_{k} - C_{k} - {\sum\limits_{j \neq i}{\left( A_{kj} \right)_{+}v_{j}}} - {\sum\limits_{j \neq i}{\left( A_{kj} \right)_{-}u_{j}}}}} \\ {q_{ki} = {{ub}_{k} - C_{k} - {\sum\limits_{j \neq i}{\left( A_{kj} \right)_{+}u_{j}}} - {\sum\limits_{j \neq i}{\left( A_{kj} \right)_{-}v_{j}}}}} \\ {\Delta_{ki} = {ɛ\left( {1 + {\sum\limits_{j \neq i}\left( {{A_{kj}} + {\max\left( {{u_{j}},{v_{j}}} \right)}} \right)}} \right)}} \end{matrix}$

[0273] We can determine then determine new point bounds $\begin{matrix} {{\forall{k \in K_{1}}},{f_{k}\quad {linear}},{\forall{i:\left\{ \begin{matrix} {\left. {A_{ki} > ɛ}\Rightarrow v_{i}^{\prime} \right. = {\max \left( {{u_{j} - {{1 + u_{j}}}},{\min \left( {v_{i},{\max \left( {\frac{q_{ki} + \Delta_{ki}}{A_{ki} - ɛ},\frac{q_{ki} + \Delta_{ki}}{A_{ki} + ɛ}} \right)}} \right)}} \right)}} \\ {\left. {A_{ki} < {- ɛ}}\Rightarrow v_{i}^{\prime} \right. = {\max\left( {{u_{j} - {{1 + u_{j}}}},{\min \left( {v_{i},{\max \left( {\frac{p_{ki} + \Delta_{ki}}{A_{ki} - ɛ},\frac{p_{ki} + \Delta_{ki}}{A_{ki} + ɛ}} \right)}} \right)}} \right.}} \end{matrix} \right.}}} \\ {{\forall{k \in K_{1}}},{f_{k}\quad {linear}},{\forall{i:\left\{ \begin{matrix} {\left. {A_{ki} > ɛ}\Rightarrow u_{i}^{\prime} \right. = {\min \left( {{v_{j} + {{1 + v_{j}}}},{\max \left( {u_{i},{\min \left( {\frac{p_{ki} + \Delta_{ki}}{A_{ki} - ɛ},\frac{p_{ki} + \Delta_{ki}}{A_{ki} + ɛ}} \right)}} \right)}} \right)}} \\ {\left. {A_{ki} < {- ɛ}}\Rightarrow u_{i}^{\prime} \right. = {\min \left( {{v_{j} + {{1 + v_{j}}}},{\max \left( {u_{i},{\min \left( {\frac{q_{ki} + \Delta_{ki}}{A_{ki} - ɛ},\frac{q_{ki} + \Delta_{ki}}{A_{ki} + ɛ}} \right)}} \right)}} \right)}} \end{matrix} \right.}}} \end{matrix}$

Numerically Robust Square-Free Bound Propagation

[0274] The following modifies the Square-Free Bound Propagation to account for possible numerical problems. Let ε>0 be our numerical tolerance.

[0275] For convenience, define the following error bound on the product xy

Δxy(x ₀ ,x ₁ ,y ₀ ,y ₁)=εmax(|x ₀ |,|y ₀ |,|x ₁|,|y₁|)

[0276] From the Bounding Lemmas, we define the robust bounding functions for multiply and square

μ^(ε) xy(x ₀ ,x ₁ ,y ₀ ,y ₁)=min(x ₀ y ₀ ,x ₁ y ₀ ,x ₀ y ₁ ,x ₁ y ₁)−Δxy(x ₀ ,x ₁ ,y ₀ ,y ₁)

v ^(ε) xy(x ₀ ,x ₁ ,y ₀ ,y ₁)=max(x ₀ y ₀ ,x ₁ y ₀ ,x ₀ y ₁ ,x ₁ y ₁)+Δxy(x ₀ ,x ₁ ,y ₀ ,y ₁)

μ^(ε) xx(x ₀ ,x ₁)=min(x ₀ ²,(x ₀ x ₁)₊ ,x ₁ ²)−Δxy(x ₀ ,x ₁ ,x ₀ ,x ₁)

v ^(ε) xx(x ₀ ,x ₁)=max(x ₀ ²,(x ₀ x ₁)₊ ,x ₁ ²)+Δxy(x ₀ ,x ₁ ,x ₀ ,x ₁)

[0277] We then define rigorous bounds β₀ ^(ε)≦β≦β₁ ^(ε) and γ₀ ^(ε)≦γ≦γ₁ ^(ε) for {β,γ} $\begin{matrix} \begin{matrix} \begin{matrix} {\beta_{0}^{ɛ} = \quad {A_{kJ} - ɛ + {\sum\limits_{i \neq J}{\left( {B_{kJi} + B_{kiJ} - ɛ} \right)_{+}\left( {u_{i} - ɛ} \right)}} +}} \\ {\quad {{\sum\limits_{i \neq J}{\left( {B_{kJi} + B_{kiJ} - ɛ} \right)_{-}\left( {v_{i} + ɛ} \right)}} + {\left( {B_{JJ} - ɛ} \right)_{+}\left( {u_{J} - ɛ} \right)} -}} \end{matrix} \\ \begin{matrix} {\beta_{1}^{ɛ} = \quad {A_{kJ} + ɛ + {\sum\limits_{i \neq J}{\left( {B_{kJi} + B_{kiJ} + ɛ} \right)_{+}\left( {v_{i} + ɛ} \right)}} +}} \\ {\quad {{\sum\limits_{i \neq J}{\left( {B_{kJi} + B_{kiJ} + ɛ} \right)_{-}\left( {u_{i} - ɛ} \right)}} + {\left( {B_{JJ} + ɛ} \right)_{+}\left( {v_{J} + ɛ} \right)} -}} \end{matrix} \end{matrix} \\ \begin{matrix} {\gamma_{0}^{ɛ} = \quad {{lb}_{k} - C_{k} - ɛ - {\sum\limits_{i \neq J}{\left( {A_{ki} + ɛ} \right)_{+}\left( {v_{i} + ɛ} \right)}} - {\sum\limits_{i \neq J}{\left( {A_{ki} + ɛ} \right)_{-}\left( {u_{i} - ɛ} \right)}} -}} \\ {\quad {{\sum\limits_{{i \neq J},{j \neq J},{i \neq j}}{\left( {B_{kji} + ɛ} \right)_{+}\nu^{ɛ}{{xy}\left( {u_{j},v_{j},u_{i},v_{i}} \right)}}} -}} \\ {\quad {{\sum\limits_{{i \neq J},{j \neq J},{i \neq j}}{\left( {B_{kji} + ɛ} \right)_{-}\mu^{ɛ}{{xy}\left( {u_{j},v_{j},u_{i},v_{i}} \right)}}} -}} \\ {\quad {{\sum\limits_{i \neq J}{\left( {B_{kii} + ɛ} \right)_{+}\nu^{ɛ}{{xx}\left( {u_{i},v_{i}} \right)}}} - {\sum\limits_{i \neq J}{\left( {B_{kii} + ɛ} \right)_{-}\mu^{ɛ}{{xx}\left( {u_{i},v_{i}} \right)}}}}} \end{matrix} \\ \begin{matrix} {\gamma_{1}^{ɛ} = \quad {{ub}_{k} - C_{k} + ɛ - {\sum\limits_{i \neq J}{\left( {A_{ki} - ɛ} \right)_{+}\left( {u_{i} - ɛ} \right)}} - {\sum\limits_{i \neq J}{\left( {A_{ki} - ɛ} \right)_{-}\left( {v_{i} + ɛ} \right)}} -}} \\ {\quad {{\sum\limits_{{i \neq J},{j \neq J},{i \neq j}}{\left( {B_{kji} - ɛ} \right)_{+}\mu^{ɛ}{{xy}\left( {u_{j},v_{j},u_{i},v_{i}} \right)}}} -}} \\ {\quad {{\sum\limits_{{i \neq J},{j \neq J},{i \neq j}}{\left( {B_{kji} - ɛ} \right)_{-}\nu^{ɛ}{{xy}\left( {u_{j},v_{j},u_{i},v_{i}} \right)}}} -}} \\ {\quad {{\sum\limits_{i \neq J}{\left( {B_{kii} - ɛ} \right)_{+}\mu^{ɛ}{{xx}\left( {u_{i},v_{i}} \right)}}} - {\sum\limits_{i \neq J}{\left( {B_{kii} - ɛ} \right)_{-}\nu^{ɛ}{{xx}\left( {u_{i},v_{i}} \right)}}}}} \end{matrix} \\ \quad \end{matrix}$

[0278] We now follow the identical process as in (2.8) replacing the original set {β₀,β₁,γ₀,γ₁} by the set {β₀ ^(ε),β₁ ^(ε,γ) ₀ ^(ε),γ₁ ^(ε)}.

Numerically Robust Non-Square-Free Bound Propagation

[0279] The following modifies the Non-Square-Free Bound Propagation to account for possible numerical problems. Let ε>0 be our numerical tolerance. Define the robust bounding functions for multiply and square as in the Numerically Robust Square-Free Bound Propagation section.

[0280] We define rigorous bounds β₀ ^(ε)≦β≦β₁ ^(ε) and γ₀ ^(ε)≦γ≦γ₁ ^(ε) for {β,γ} based on the sign of B_(kJJ) $\begin{matrix} \begin{matrix} \begin{matrix} {{\hat{\beta}}_{0}^{ɛ} = \quad {A_{kJ} - ɛ + {\sum\limits_{i \neq J}{\left( {B_{kJi} + B_{kiJ} - ɛ} \right)_{+}\left( {u_{i} - ɛ} \right)}} +}} \\ {\quad {\sum\limits_{i \neq J}{\left( {B_{kJi} + B_{kiJ} - ɛ} \right)_{-}\left( {v_{i} + ɛ} \right)}}} \end{matrix} \\ \begin{matrix} {{\hat{\beta}}_{1}^{ɛ} = \quad {A_{kJ} + ɛ + {\sum\limits_{i \neq J}{\left( {B_{kJi} + B_{kiJ} + ɛ} \right)_{+}\left( {v_{i} + ɛ} \right)}} +}} \\ {\quad {\sum\limits_{i \neq J}{\left( {B_{kJi} + B_{kiJ} + ɛ} \right)_{-}\left( {u_{i} - ɛ} \right)}}} \end{matrix} \end{matrix} \\ \begin{matrix} {{\hat{\gamma}}_{0}^{ɛ} = \quad {{lb}_{k} - C_{k} - ɛ - {\sum\limits_{i \neq J}{\left( {A_{ki} + ɛ} \right)_{+}\left( {v_{i} + ɛ} \right)}} - {\sum\limits_{i \neq J}{\left( {A_{ki} + ɛ} \right)_{-}\left( {u_{i} - ɛ} \right)}} -}} \\ {\quad {{\sum\limits_{{i \neq J},{j \neq J},{i \neq j}}{\left( {B_{kji} + ɛ} \right)_{+}\nu^{ɛ}{{xy}\left( {u_{j},v_{j},u_{i},v_{i}} \right)}}} -}} \\ {\quad {{\sum\limits_{{i \neq J},{j \neq J},{i \neq j}}{\left( {B_{kji} + ɛ} \right)_{-}\mu^{ɛ}{{xy}\left( {u_{j},v_{j},u_{i},v_{i}} \right)}}} -}} \\ {\quad {{\sum\limits_{i \neq J}{\left( {B_{kii} + ɛ} \right)_{+}\nu^{ɛ}{{xx}\left( {u_{i},v_{i}} \right)}}} - {\sum\limits_{i \neq J}{\left( {B_{kii} + ɛ} \right)_{-}\mu^{ɛ}{{xx}\left( {u_{i},v_{i}} \right)}}}}} \end{matrix} \\ \begin{matrix} {{\hat{\gamma}}_{1}^{ɛ} = \quad {{ub}_{k} - C_{k} + ɛ - {\sum\limits_{i \neq J}{\left( {A_{ki} - ɛ} \right)_{+}\left( {u_{i} - ɛ} \right)}} - {\sum\limits_{i \neq J}{\left( {A_{ki} - ɛ} \right)_{-}\left( {v_{i} + ɛ} \right)}} -}} \\ {\quad {{\sum\limits_{{i \neq J},{j \neq J},{i \neq j}}{\left( {B_{kji} - ɛ} \right)_{+}\mu^{ɛ}{{xy}\left( {u_{j},v_{j},u_{i},v_{i}} \right)}}} -}} \\ {\quad {{\sum\limits_{{i \neq J},{j \neq J},{i \neq j}}{\left( {B_{kji} - ɛ} \right)_{-}\nu^{ɛ}{{xy}\left( {u_{j},v_{j},u_{i},v_{i}} \right)}}} -}} \\ {\quad {{\sum\limits_{i \neq J}{\left( {B_{kii} - ɛ} \right)_{+}\mu^{ɛ}{{xx}\left( {u_{i},v_{i}} \right)}}} - {\sum\limits_{i \neq J}{\left( {B_{kii} - ɛ} \right)_{-}\nu^{ɛ}{{xx}\left( {u_{i},v_{i}} \right)}}}}} \end{matrix} \\ \quad \end{matrix}$

[0281] We now follow the same process as in the Non-Square-Free Bound Propagation section replacing the original set {{circumflex over (β)}₀,{circumflex over (β)}₁,{circumflex over (γ)}₀,{circumflex over (γ)}₁} by the set {{circumflex over (β)}₀ ^(ε),{circumflex over (β)}₁ ^(ε),{circumflex over (γ)}₀ ^(ε),{circumflex over (γ)}₁ ^(ε)}.

Bound Propagation for Mixing Functions

[0282] A common equation for refinery and chemical processes is a mixing equation of the form

x ₀(y ₁ +y ₂ + . . . +y _(n))=x ₁ y ₁ +x ₂ y ₂ + . . . +x _(n) y _(n)  (G.1)

[0283] where

[0284] y₁≧0, y₂≧0, . . . , y_(n)≧0.

[0285] Here we are given materials indexed by {1,2, . . . ,n), and recipe sizes (or rates, or masses, or ratios, whatever mixing unit of interest) {y₁, y₂, . . , y_(n)) for a mix of the materials. Then (G.1) represents a simple mixing model for a property x₀ of the resulting mix given values {x₁,x₂, . . . ,x_(n)) for the property of each of the materials.

[0286] In this case, the resulting property will be a convex linear combination of the individual properties. Hence if we are given bounds

a ₁ ≦x ₁ ≦b ₁ , a ₂ ≦x ₂ ≦b ₂ , . . . ,a _(n≦) x _(n) ≦b _(n)  (G.2)

[0287] we can derive the bounds

x ₀≧min(a ₁ ,a ₂ , . . . ,a _(n))

x ₀≦max(b ₁ ,b ₂ , . . . ,b _(n))  (G.3)

[0288] It is to be understood that the above description it is intended to be illustrative, and not restrictive. Many other embodiments are possible and some will be apparent to those skilled in the art, upon reviewing the above description. For example the local linear bounding and the local linearization can be performed in the opposite order, and more. Therefore, the spirit and scope of the appended claims should not be limited to the above description. The scope of the invention should be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled. 

What is claimed is:
 1. A method of solving an operations problem, comprising: receiving variables, relationships, and constraints; forming a set of non-convex quadratic equations based on the variables, relationships, and constraints; solving the set of non-convex quadratic equations by applying a bound propagation process, a local linear bounding process, a local linearization process, and a global subdivision search; and determining whether a solution is optimal, feasible, or infeasible.
 2. The method of claim 1, wherein the solution is a schedule for a manufacturing process.
 3. The method of claim 2, wherein the solution is a schedule for operating an oil refinery.
 4. The method of claim 1, wherein the solution is a plan for a manufacturing process.
 5. The method of claim 4, wherein the solution is a plan for operating an oil refinery.
 6. A machine-accessible medium having associated content capable of directing the machine to perform a method of solving a set of non-convex quadratic equations, the method comprising: selecting a region bounding all variables; applying a bound propagation process to the region to refine the bounds and improve linearization; applying a local linear bounding process to the region to determine feasibility and to find approximately feasible solutions; applying a local linearization process to the region to determine feasibility and local optimality; upon finding an optimal global solution, providing the optimal global solution and information indicating optimality; upon finding a feasible global solution, providing the feasible global solution and information indicating feasibility; upon determining local infeasibility, eliminating the region from consideration; upon determining global infeasibility, providing information indicating infeasibility; and upon not finding a solution, applying a global subdivision search to the region to produce two or more regions and iteratively applying the bound propagation, local linear bounding, and local linearization processes to each of the two or more regions, until determining the solution is optimal, feasible, or infeasible.
 7. The machine-accessible medium as recited in claim 6, further comprising: receiving input variables, constraints, and equations.
 8. The machine-accessible medium as recited in claim 6, further comprising: receiving a measure of optimality used to determine the global optimal solution.
 9. The machine-accessible medium as recited in claim 6, further comprising: receiving a measure of feasibility used to determine the global feasible solution.
 10. The machine-accessible medium as recited in claim 6, further comprising: providing a schedule for operating a plant.
 11. The machine-accessible medium as recited in claim 6, further comprising: providing a plan for operating a plant.
 12. A process of solving a set of non-convex quadratic equations, comprising: selecting a region bounding all variables; applying a bound propagation process to the region to refine the bounds and improve linearization; applying a local linear bounding process to the region to determine feasibility and to find approximately feasible solutions; applying a local linearization process to the region to determine feasibility and local optimality; upon finding a solution after the local linearization process, providing the solution; upon determining infeasibility, eliminating the region from consideration; and upon not finding the solution after the local linearization process, applying a global subdivision search to the region to produce two or more regions and iteratively applying the bound propagation, local linear bounding, and local linearization processes to each of the two or more regions, until determining the solution is optimal, feasible, or infeasible.
 13. The process as recited in claim 12, wherein the local linearization process is the local linear bounding process.
 14. The process as recited in claim 12, wherein the local linear bounding process comprises: performing differentiation on equations in the region; determining lower and upper bounds on the variables in the region; applying a linear programming process to the linear equations in the region; determining whether a solution exists in the region; upon finding a solution exists, determining local feasibility; and upon finding local infeasibility, determining global infeasibility.
 15. The process as recited in claim 12, wherein the local linearization process comprises: performing differentiation at a point in the bounded region; forming a set of linear equations; applying a linear programming process to the linear equations in the bounded region; and generating a new point in the bounded region and repeating the local linearization process with the new point.
 16. The process as recited in claim 12, wherein applying a global subdivision search to the region to produce two or more regions comprises: maintaining a list of non-closed nodes; selecting a candidate set of nodes from the list; selecting a chosen node from the candidate set; subdividing a point range of the chosen node; closing the chosen node; and opening two new nodes that subdivide the chosen node.
 17. The process as recited in claim 16, wherein selecting the candidate set of nodes is done by selecting linearized nodes.
 18. The process as recited in claim 16, wherein selecting the candidate set of nodes is done by expanding nodes that have not yet been partially expanded.
 19. The process as recited in claim 16, wherein selecting the candidate set of nodes is done by selecting expanded nodes.
 20. The process as recited in claim 16, wherein subdividing the two new nodes that subdivide the chosen node comprises: subdividing a point range; upon determining the chosen node is linearized and divergent, computing a worst divergence; and upon determining the chosen node is not linearized, computing a dimension of largest infeasibility. 